#! /usr/bin/env python
# -*- coding: utf-8 -*-
"""
@File Name: 其他urllib接口_http-getfile-urllib2.py
@Author: LTisme
@Date: 2021/8/28 19:49
@Description: 借助urllib，从HTTP（网络）服务器经由套接字抓取文件；
              这个版本使用的接口将所抓取的数据保存到一个本地二进制模式文件中；
              本地文件名作为命令行参数传入或者用urllib.parse从URL提取而来：
              文件名参数可能开头带有目录路径，末尾带有查询参数，所以用os.path.split处理还不够（因为仅仅分割了目录路径）；
              缺陷：应该用urllib.parse.quote处理文件名，除非已经直到文件名没有问题；
"""
import sys, os, urllib.request, urllib.parse

showlines = 6

try:
    servername, filename = sys.argv[1:3]                            # 前两个命令行参数
except:
    servername, filename = 'learning-python.com', '/index.html'

remoteaddr = 'http://%s%s' % (servername, filename)                 # 任何网络地址，获取结果文件名

if len(sys.argv) == 4:
    localname = sys.argv[3]
else:
    tt = scheme, server, path, parms, query, frag = urllib.parse.urlparse(remoteaddr)

    localname = os.path.split(path)[1]
    print(tt, f'localname is {localname}')

print(remoteaddr, localname)
urllib.request.urlretrieve(remoteaddr, localname)
remotedata = open(localname, 'rb').readlines()                      # 保存到本地文件
for line in remotedata[:showlines]:                                 # 嵌有\n的字节
    print(line)
